﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Collections;
using DTO;
namespace DAO
{
    public class CPHONGDAO : AbstractDao
    {
        //Lây thông tin 1 phòng bất kỳ
        public static CPHONGDTO LayThongTinPhong(int MaPhong)
        {
            CPHONGDTO phongDto = new CPHONGDTO();
            OleDbConnection cn = new OleDbConnection();
            cn = CPHONGDAO.ConnectionData();
            String strSQL = "Select * From PHONG where MaPhong=" + MaPhong.ToString();
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            OleDbDataReader myReader = cmd.ExecuteReader();
            while (myReader.Read())
            {
                phongDto.MaPhong = int.Parse(myReader[0].ToString());
                phongDto.TenPhong = myReader[1].ToString();
                phongDto.TinhTrangPhong = myReader[2].ToString();
                phongDto.GhiChu = myReader[3].ToString();
                phongDto.Duyet = bool.Parse(myReader[4].ToString());
                phongDto.TinhTrang = bool.Parse(myReader[5].ToString());
                phongDto.MaLoaiPhong = int.Parse(myReader[6].ToString());
            }
            myReader.Close();
            cn.Close();
            return phongDto;
        }
        // Hàm lấy danh sách tất cả các phòng(kể cả phòng chưa duyệt) dùng để xử lý
        public static List<CPHONGDTO> LayDanhSachPhong()
        {
            List<CPHONGDTO> ds = new List<CPHONGDTO>();
            OleDbConnection cn = new OleDbConnection();
            cn = CPHONGDAO.ConnectionData();
            String strSQL = "Select * From PHONG";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            OleDbDataReader myReader = cmd.ExecuteReader();
            while (myReader.Read())
            {
                CPHONGDTO phongDto = new CPHONGDTO();
                phongDto.MaPhong = int.Parse(myReader[0].ToString());
                phongDto.TenPhong = myReader[1].ToString();
                phongDto.TinhTrangPhong = myReader[2].ToString();
                phongDto.GhiChu = myReader[3].ToString();
                phongDto.Duyet = bool.Parse(myReader[4].ToString());
                phongDto.TinhTrang = bool.Parse(myReader[5].ToString());
                phongDto.MaLoaiPhong = int.Parse(myReader[6].ToString());
                ds.Add(phongDto);
            }
            myReader.Close();
            cn.Close();
            return ds;
        }
        //// Hàm lấy danh sách tất cả các phòng đã được duyệt và chưa bị đánh dấu xóa dùng để xử lý
        public static List<CPHONGDTO> LayDanhSachPhongDaDuyet()
        {
            List<CPHONGDTO> ds = new List<CPHONGDTO>();
            OleDbConnection cn = new OleDbConnection();
            cn = CPHONGDAO.ConnectionData();
            String strSQL = "Select * From PHONG where TinhTrang=false and Duyet=true";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            OleDbDataReader myReader = cmd.ExecuteReader();
            while (myReader.Read())
            {
                CPHONGDTO phongDto = new CPHONGDTO();
                phongDto.MaPhong = int.Parse(myReader[0].ToString());
                phongDto.TenPhong = myReader[1].ToString();
                phongDto.TinhTrangPhong = myReader[2].ToString();
                phongDto.GhiChu = myReader[3].ToString();
                phongDto.Duyet = bool.Parse(myReader[4].ToString());
                phongDto.TinhTrang = bool.Parse(myReader[5].ToString());
                phongDto.MaLoaiPhong = int.Parse(myReader[6].ToString());
                ds.Add(phongDto);
            }
            myReader.Close();
            cn.Close();
            return ds;
        }
        //// Hàm lấy danh sách tất cả các phòng chưa duyệt dùng để xử lý
        public static List<CPHONGDTO> LayDanhSachPhongChuaDuyet()
        {
            List<CPHONGDTO> ds = new List<CPHONGDTO>();
            OleDbConnection cn = new OleDbConnection();
            cn = CPHONGDAO.ConnectionData();
            String strSQL = "Select * From PHONG where Duyet=false";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            OleDbDataReader myReader = cmd.ExecuteReader();
            while (myReader.Read())
            {
                CPHONGDTO phongDto = new CPHONGDTO();
                phongDto.MaPhong = int.Parse(myReader[0].ToString());
                phongDto.TenPhong = myReader[1].ToString();
                phongDto.TinhTrangPhong = myReader[2].ToString();
                phongDto.GhiChu = myReader[3].ToString();
                phongDto.Duyet = bool.Parse(myReader[4].ToString());
                phongDto.TinhTrang = bool.Parse(myReader[5].ToString());
                phongDto.MaLoaiPhong = int.Parse(myReader[6].ToString());
                ds.Add(phongDto);
            }
            myReader.Close();
            cn.Close();
            return ds;
        }
        //// Hàm lấy danh sách tất cả các phòng đã đánh dấu xóa dùng để xử lý
        public static List<CPHONGDTO> LayDanhSachPhongDaDanhDauXoa()
        {
            List<CPHONGDTO> ds = new List<CPHONGDTO>();
            OleDbConnection cn = new OleDbConnection();
            cn = CPHONGDAO.ConnectionData();
            String strSQL = "Select * From PHONG where TinhTrang=true";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            OleDbDataReader myReader = cmd.ExecuteReader();
            while (myReader.Read())
            {
                CPHONGDTO phongDto = new CPHONGDTO();
                phongDto.MaPhong = int.Parse(myReader[0].ToString());
                phongDto.TenPhong = myReader[1].ToString();
                phongDto.TinhTrangPhong = myReader[2].ToString();
                phongDto.GhiChu = myReader[3].ToString();
                phongDto.Duyet = bool.Parse(myReader[4].ToString());
                phongDto.TinhTrang = bool.Parse(myReader[5].ToString());
                phongDto.MaLoaiPhong = int.Parse(myReader[6].ToString());
                ds.Add(phongDto);
            }
            myReader.Close();
            cn.Close();
            return ds;
        }

        //// Hàm lấy danh sách tất cả các phòng chưa đánh dấu xóa dùng để xử lý
        public static List<CPHONGDTO> LayDanhSachPhongChuaDanhDauXoa()
        {
            List<CPHONGDTO> ds = new List<CPHONGDTO>();
            OleDbConnection cn = new OleDbConnection();
            cn = CPHONGDAO.ConnectionData();
            String strSQL = "Select * From PHONG where TinhTrang=false";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            OleDbDataReader myReader = cmd.ExecuteReader();
            while (myReader.Read())
            {
                CPHONGDTO phongDto = new CPHONGDTO();
                phongDto.MaPhong = int.Parse(myReader[0].ToString());
                phongDto.TenPhong = myReader[1].ToString();
                phongDto.TinhTrangPhong = myReader[2].ToString();
                phongDto.GhiChu = myReader[3].ToString();
                phongDto.Duyet = bool.Parse(myReader[4].ToString());
                phongDto.TinhTrang = bool.Parse(myReader[5].ToString());
                phongDto.MaLoaiPhong = int.Parse(myReader[6].ToString());
                ds.Add(phongDto);
            }
            myReader.Close();
            cn.Close();
            return ds;
        }
        //Lây danh sách phòng đã được duyệt và chưa bị đánh dấu xóa theo loaij phòng
        public static List<CPHONGDTO> LayDanhSachPhongTheoLoaiPhong(int MaLoaiPhong)
        {
            List<CPHONGDTO> ds = new List<CPHONGDTO>();
            OleDbConnection cn = new OleDbConnection();
            cn = CPHONGDAO.ConnectionData();
            String strSQL = "Select * From PHONG where TinhTrang=false and Duyet=true and MaLoaiPhong=" + MaLoaiPhong.ToString();
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            OleDbDataReader myReader = cmd.ExecuteReader();
            while (myReader.Read())
            {
                CPHONGDTO phongDto = new CPHONGDTO();
                phongDto.MaPhong = int.Parse(myReader[0].ToString());
                phongDto.TenPhong = myReader[1].ToString();
                phongDto.TinhTrangPhong = myReader[2].ToString();
                phongDto.GhiChu = myReader[3].ToString();
                phongDto.Duyet = bool.Parse(myReader[4].ToString());
                phongDto.TinhTrang = bool.Parse(myReader[5].ToString());
                phongDto.MaLoaiPhong = int.Parse(myReader[6].ToString());
                ds.Add(phongDto);
            }
            myReader.Close();
            cn.Close();
            return ds;
        }

        ////Hàm lấy toàn bộ thông tin của tất cả phòng trong csdl đổ vào 1 bảng chỉ hiện ra trên giao diện nhưng không dùg xử lý được*
        public static DataTable LayBang()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CPHONGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select * From PHONG";
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        ////Hàm kết hai bảng phòng và loại phòng, lấy 1 số thôngt tin của tất cả phòng
        ////đổ vào vào 1 bảng chỉ hiện ra trên giao diện, không dùng để xử lý
        public static DataTable LayBangPhong()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CPHONGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select PHONG.*,LOAIPHONG.* From PHONG,LOAIPHONG where PHONG.MaLoaiPhong=LOAIPHONG.MaLoaiPhong";
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        ////Tim ma phong

        ////Hàm kết hai bảng phòng và loại phòng đổ vào vào 1 bảng chỉ hiện ra trên giao diện, không dùng để xử lý
        ////Lấy ra 1 số thông tin của các phòng đã được giám đốc duyệt và chưa bị đánh dấu xóa
        public static DataTable LayBangPhongDaDuyet()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CPHONGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select  PHONG.*, LOAIPHONG.* From PHONG,LOAIPHONG where PHONG.MaLoaiPhong=LOAIPHONG.MaLoaiPhong and PHONG.TinhTrang=false and PHONG.Duyet=true";
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        public static DataTable LayBangPhongTrongDaDuyet()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CPHONGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select  PHONG.*, LOAIPHONG.* From PHONG,LOAIPHONG where PHONG.MaLoaiPhong=LOAIPHONG.MaLoaiPhong and PHONG.TinhTrang=false and PHONG.Duyet=true and PHONG.TinhTrangPhong='Trống'";
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        ////Hàm kết hai bảng phòng và loại phòng đổ vào vào 1 bảng chỉ hiện ra trên giao diện, không dùng để xử lý
        ////Lấy ra 1 số thông tin của các phòng chưa được giám đốc duyệt 
        public static DataTable LayBangPhongChuaDuyet()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CPHONGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select PHONG.*, LOAIPHONG.*  From PHONG,LOAIPHONG where PHONG.MaLoaiPhong=LOAIPHONG.MaLoaiPhong and PHONG.Duyet=false";
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        ////Lấy ra 1 số thông tin các phòng đã đánh dấu xóa 
        public static DataTable LayBangPhongDaDanhDauXoa()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CPHONGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select PHONG.*, LOAIPHONG.* From PHONG,LOAIPHONG where PHONG.MaLoaiPhong=LOAIPHONG.MaLoaiPhong and PHONG.TinhTrang=true";
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        ////Lấy ra 1 số thông tin các phòng chua đánh dấu xóa 
        public static DataTable LayBangPhongChuaDanhDauXoa()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CPHONGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select PHONG.*, LOAIPHONG.* From PHONG,LOAIPHONG where PHONG.MaLoaiPhong=LOAIPHONG.MaLoaiPhong and PHONG.TinhTrang=false";
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        ////Lấy 1 số thông tin của các phòng theo loại phòng, phòng đã được duyệt và chưa bị đánh dấu xóa
        public static DataTable LayBangPhongTheoLoaiPhong(int MaLoaiPhong)
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CPHONGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select PHONG.*, LOAIPHONG.*  From PHONG,LOAIPHONG where PHONG.MaLoaiPhong=LOAIPHONG.MaLoaiPhong and PHONG.TinhTrang=false and PHONG.Duyet=true and PHONG.MaLoaiPhong=" + MaLoaiPhong.ToString();
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        //Tra cứu phòng theo yêu cầu-->trả ra danh sách các phòng
        public static DataTable TraCuuPhongTheoYeuCau(string TinhTrangPhong, string TenLoaiPhong, int DonGia, string sapXep, string thuTu)
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            cn = CPHONGDAO.ConnectionData();
            string sql = "SELECT PHONG.*, LOAIPHONG.* FROM  (PHONG INNER JOIN LOAIPHONG ON PHONG.MaLoaiPhong = LOAIPHONG.MaLoaiPhong) where PHONG.TinhTrang=false and PHONG.Duyet=true and 1 ";
            if (TinhTrangPhong == "Tất cả")
            {
                sql += " and  (PHONG.TinhTrangPhong='Trống' or PHONG.TinhTrangPhong= 'Đang thuê')";
            }
            else
            {
                sql += " and PHONG.TinhTrangPhong like '%" + TinhTrangPhong + "%'";
            }
            if (TenLoaiPhong != "")
            {
                sql += " and LOAIPHONG.TenLoaiPhong like '%" + TenLoaiPhong + "%'";
                sql += " and LOAIPHONG.DonGia=" + DonGia.ToString();
            }
            if (sapXep == "Tự động")
            {
                sql += " order by MaPhong";
            }
            if (sapXep == "Tình trạng phòng")
            {
                sql += " order by PHONG.TinhTrangPhong";
            }
            if (sapXep == "Tên phòng")
            {
                sql += " order by PHONG.TenPhong ";
            }
            if (sapXep == "Tên loại phòng")
            {
                sql += " order by LOAIPHONG.TenLoaiPhong ";
            }
            if (sapXep == "Đơn giá")
            {
                sql += " order by LOAIPHONG.DonGia ";
            }
            if (thuTu == "Tăng")
            {
                sql += " asc ";
            }
            if (thuTu == "Giảm")
            {
                sql += " desc ";
            }
            OleDbDataAdapter da = new OleDbDataAdapter(sql, cn);
            da.Fill(dt);
            cn.Close();
            return dt;
        }
      
        ////Hàm đánh dấu xóa phòng tạm thời hoặc phục hồi lại
        public static void CapNhatTinhTrangPhong(int MaPhong, bool TinhTrang)
        {
            OleDbConnection cn;
            cn = CPHONGDAO.ConnectionData();
            string strSQL = "UPDATE PHONG SET TinhTrang=? WHERE (MaPhong=?)";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            cmd.Parameters.Add("@TinhTrang", OleDbType.Boolean);
            cmd.Parameters.Add("@MaPhong", OleDbType.Integer);
            cmd.Parameters[0].Value = TinhTrang;
            cmd.Parameters[1].Value = MaPhong;
            cmd.ExecuteNonQuery();
            cn.Close();
        }
        ////Hàm xóa phòng vĩnh viễn
        public static void XoaPhong(int MaPhong)
        {
            //Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            OleDbConnection cn;
            cn = CPHONGDAO.ConnectionData();
            // chuoi strSQL thao tac CSDL
            String strSQL = "DELETE FROM PHONG WHERE MaPhong=?";
            //B4: Thuc thi chuoi strSQL
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            //add vao cmd để tránh bị sai sót khi gán thuộc tính bằng 1 giá trị cụ thể
            cmd.Parameters.Add("@MaPhong", OleDbType.Integer);
            cmd.Parameters[0].Value = MaPhong;
            cmd.ExecuteNonQuery();
            //đóng kết nối
            cn.Close();
        }
        ////tách thành cập nhật 1 số tin phòng và hàm đánh dấu thay đổi tình trạng(xóa hay phục hồi) của phòng, hàm duyệt phòng
        ////Hàm cập nhật đầy đủ thông tin phòng
        public void CapNhatThongTinPhong(CPHONGDTO phongDto)
        {
            OleDbConnection cn;
            cn = CPHONGDAO.ConnectionData();
            String strSQL = "UPDATE PHONG SET TenPhong =?,TinhTrangPhong=?,GhiChu=?,MaLoaiPhong=? WHERE  (MaPhong = ?)";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            cmd.Parameters.Add("@TenPhong", OleDbType.WChar);
            cmd.Parameters.Add("@TinhTrangPhong", OleDbType.WChar);
            cmd.Parameters.Add("@GhiChu", OleDbType.WChar);
            cmd.Parameters.Add("@MaLoaiPhong", OleDbType.Integer);
            cmd.Parameters.Add("@MaPhong", OleDbType.Integer);
            cmd.Parameters[0].Value = phongDto.TenPhong;
            cmd.Parameters[1].Value = phongDto.TinhTrangPhong;
            cmd.Parameters[2].Value = phongDto.GhiChu;
            cmd.Parameters[3].Value = phongDto.MaLoaiPhong;
            cmd.Parameters[4].Value = phongDto.MaPhong;
            cmd.ExecuteNonQuery();
            cn.Close();
        }
        //// Hàm xét duyệt phòng
        public static void DuyetPhong(int MaPhong, bool Duyet)
        {
            OleDbConnection cn;
            cn = CPHONGDAO.ConnectionData();
            string strSQL = "UPDATE PHONG SET Duyet=? WHERE (MaPhong=?)";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            cmd.Parameters.Add("@Duyet", OleDbType.Boolean);
            cmd.Parameters.Add("@MaPhong", OleDbType.Integer);
            cmd.Parameters[0].Value = Duyet;
            cmd.Parameters[1].Value = MaPhong;
            cmd.ExecuteNonQuery();
            cn.Close();
        }
        public static void CapNhatTinhTrangPhongTrong_DangThue(int MaPhong, String TinhTrangPhong)
        {
            OleDbConnection cn;
            cn = CPHONGDAO.ConnectionData();
            string strSQL = "UPDATE PHONG SET TinhTrangPhong=? WHERE (MaPhong=?)";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            cmd.Parameters.Add("@TinhTrangPhong", OleDbType.WChar);
            cmd.Parameters.Add("@MaPhong", OleDbType.Integer);
            cmd.Parameters[0].Value = TinhTrangPhong;
            cmd.Parameters[1].Value = MaPhong;
            cmd.ExecuteNonQuery();
            cn.Close();
        }

        //tiep tan

        public static int LayMaPhongChuaThanhToan(string tenPhong)
        {
            OleDbConnection cn;
            cn = CPHONGDAO.ConnectionData();
            string strSQL;
            strSQL = "Select * From PHONG where Duyet =" + true + " and TenPhong='" + tenPhong + "'and TinhTrangPhong = 'Đang thuê'";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            OleDbDataReader myReader = cmd.ExecuteReader();
            CPHONGDTO phongDto = new CPHONGDTO();
            int ma = 0;
            while (myReader.Read())
            {
                ma = int.Parse((myReader[0]).ToString());
            }
            //B5: Dong ket noi CSDL
            cn.Close();
            return ma;
        }
        public static DataTable LayDanhSachPhongTrong()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            cn = CPHONGDAO.ConnectionData();
            String strSQL = "SELECT PHONG.*, LOAIPHONG.* FROM  (PHONG INNER JOIN LOAIPHONG ON PHONG.MaLoaiPhong = LOAIPHONG.MaLoaiPhong) where PHONG.TinhTrang=false and PHONG.Duyet=true and TinhTrangPhong='Trống' order by PHONG.TenPhong asc";
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            cn.Close();
            return dt;
        }
        //Ấn
        //Thêm 1 phòng
        public void ThemPhong(CPHONGDTO phongDto)
        {
            OleDbConnection cn;
            cn = CPHONGDAO.ConnectionData();
            String strSQL = "Insert into PHONG(TenPhong,TinhTrangPhong,GhiChu,Duyet,TinhTrang,MaLoaiPhong) values (?,?,?,?,?,?)";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            cmd.Parameters.Add("@TenPhong", OleDbType.WChar);
            cmd.Parameters.Add("@TinhTrangPhong", OleDbType.WChar);
            cmd.Parameters.Add("@GhiChu", OleDbType.WChar);
            cmd.Parameters.Add("@Duyet", OleDbType.Boolean);
            cmd.Parameters.Add("@TinhTrang", OleDbType.Boolean);
            cmd.Parameters.Add("@MaLoaiPhong", OleDbType.Integer);
            cmd.Parameters[0].Value = phongDto.TenPhong;
            cmd.Parameters[1].Value = phongDto.TinhTrangPhong;
            cmd.Parameters[2].Value = phongDto.GhiChu;
            cmd.Parameters[3].Value = phongDto.Duyet;
            cmd.Parameters[4].Value = phongDto.TinhTrang;
            cmd.Parameters[5].Value = phongDto.MaLoaiPhong;
            cmd.ExecuteNonQuery();
            //strSQL = "Select @@IDENTITY";
            ////cmd = new OleDbCommand(strSQL, cn);
            ////lndDto.MaLoaiNguoiDung = (int)cmd.ExecuteScalar();
            cn.Close();
        }
        ///////////
        public static DataTable LayBangPhongDangThueDaDuyet()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CPHONGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select  PHONG.*, LOAIPHONG.* From PHONG,LOAIPHONG where PHONG.MaLoaiPhong=LOAIPHONG.MaLoaiPhong and PHONG.TinhTrang=false and PHONG.Duyet=true and PHONG.TinhTrangPhong='Đang thuê'";
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
        public static DataTable LayBangPhongTrongDuyet()
        {
            DataTable dt = new DataTable();
            OleDbConnection cn;
            //B1 & B2: Tao chuoi ket noi, mo ket noi bang doi tuong ket noi
            cn = CPHONGDAO.ConnectionData();
            //B3: Tao chuoi strSQL thao tac CSDL
            String strSQL;
            strSQL = "Select  PHONG.*, LOAIPHONG.* From PHONG,LOAIPHONG where PHONG.MaLoaiPhong=LOAIPHONG.MaLoaiPhong and PHONG.TinhTrang=false and PHONG.Duyet=true and PHONG.TinhTrangPhong='Trống'";
            //B4: Thuc thi chuoi strSQL
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            da.Fill(dt);
            //B5: Dong ket noi CSDL
            cn.Close();
            return dt;
        }
    }   
}
